package cn.xuguowen.user.designPatten.template.easy3;

/**
 * ClassName: SoyaMilk
 * Package: cn.xuguowen.user.designPatten.template.easy3
 * Description:
 *
 * @Author 徐国文
 * @Create 2023/4/24 23:08
 * @Version 1.0
 */
public abstract class SoyaMilk {

    // 模板方法
    public final void make() {
        select();

        if (isAddCondiments()) {
            addCondiments();
        }

        soak();

        beat();
    }

    // 选材料
    public void select() {
        System.out.println("选择上等的配料");
    }

    // 加调味品
    public abstract void addCondiments();

    // 浸泡
    public void soak() {
        System.out.println("黄豆和配料开始浸泡，需要3小时");
    }

    // 打碎
    public void beat() {
        System.out.println("黄豆和配料放到豆浆机中打碎");
    }

    /**
     * 钩子方法
     * @return 返回值决定是否加配料！true表示需要加配料；false表示不需要加配料
     */
    public boolean isAddCondiments() {
        return true;
    }
}
